package com.bitoon.basketdudes.web.admin;

import com.bitoon.basketdudes.web.*;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.interceptor.I18nInterceptor;
import com.opensymphony.xwork2.util.ValueStack;
import org.apache.log4j.Logger;

public class IdiomaAdmin extends Idioma {

    private Logger log = Logger.getLogger(IdiomaAdmin.class);
    private String url;

    @Override
    public String execute() {

        log.debug("Entrando en execute de idioma admin");

        //Map<String,Object> session = ActionContext.getContext().getSession();

        if (getLang() != null) { // Viene un idioma

            try {
                log.debug("Antes, en sesion: " + I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE + ": " + session.get(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE));

                // Poner idioma en la sesión propia y en I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE
                session.put("bd_lang", getLang());
                session.put(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE, getLang());

                // Ponerlo en el stackValue
                ValueStack valueStack = ActionContext.getContext().getValueStack();
                valueStack.set("stackLang", getLang());

                log.debug("Despues, en sesion: " + I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE + ": " + session.get(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE));

                //url de redireccion
                url = (String)ActionContext.getContext().getSession().get("accion_redireccion")+".action";

                log.debug("url: " + url);

            } catch (Exception e) {
                log.error("[ERROR][execute]: " , e);
            }
        }

        return "redirect";
    }

    @Override
    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }
}
